Soundness proofs for the DSD type system
نویسنده
چکیده
This paper presents the soundness proofs for the type system of the Dynamic Security Domains (DSD) language. Unless otherwise noted, the identifiers and indices used in the proofs directly refer the respective identifiers and indices used in the operational semantics and the typing rules. Also, σ and (s, h) shall refer to the same program state, equally σ1 = (s1, h1), σ′ = (s′, h′), etc. 1 Expression typing soundness In the following, we simplify notion and ignore the class information of objects. That is, given a heap h and a location a, h(a) shall refer directly to the field valuation. First, we observe an equality between the evaluation of a qualified field type (which is a label) and the interpretation of a field type of the same object. The lemma follows from their definitions. Lemma 1. In any state σ, it holds Jftπ(f)Kσ = Jft(f)KJπKσ . The following lemma states that the expression typing rules are sound. Lemma 2. If Γ ` e : `, then for all states σ and σ′ and all partial bijections β and domains k such that σ ∼β σ′, J`Kσ ≤ k implies JeKσ ∼β JeKσ′ . Proof. By induction over e. • e = n or e = > or e = ⊥. Then e is a constant and JeKσ ∼β JeKσ′ holds. • e = x. Then ` = Γ(x). If JΓ(x)Ks ≤ k, then by definition s(x) ∼β s′(x), hence JxKσ ∼β JxKσ′ . • e = π.f . Γ ` π : `π and ` = ftπ(f) t `π. Since J`Kσ ≤ k, we get J`πKσ ≤ k and by induction JπKσ ∼β JπKσ′ . We define a = JπKσ and a′ = JπKσ′ . From a ∼β a′ follows h(a) ∼β h′(a′). With lemma 1, we know Jft(f)Ka = Jftπ(f)Kσ, which is lower than k since J`Kσ ≤ k. With the definition of object equivalence, we have h(a)(f) ∼β h′(a′)(f) and thus Jπ.fKσ ∼β Jπ.fKσ′ .
منابع مشابه
Using Vampire in Soundness Proofs of Type Systems
Type systems for programming languages shall detect type errors in programs before runtime. To ensure that a type system meets this requirement, its soundness must be formally verified. We aim at automating soundness proofs of type systems to facilitate the development of sound type systems for domain-specific languages. Soundness proofs for type systems typically require induction. However, ma...
متن کاملFrom F to DOT: Type Soundness Proofs with Definitional Interpreters
Scala’s type system unifies aspects of ML modules, object-oriented, and functional programming. The Dependent Object Types (DOT) family of calculi has been proposed as a new theoretic foundation for Scala and similar expressive languages. Unfortunately, it is not clear how DOT relates to well-studied type systems from the literature, and type soundness has only been established for very restric...
متن کاملAutomating Proof Steps of Progress Proofs: Comparing Vampire and Dafny
Developing provably sound type systems is a non-trivial task which, as of today, typically requires expert skills in formal methods and a considerable amount of time. Our Veritas [3] project aims at providing support for the development of soundness proofs of type systems and efficient type checker implementations from type system specifications. To this end, we investigate how to best automate...
متن کاملA Theory of Featherweight Java in Isabelle/HOL
We formalize the type system, small-step operational semantics, and type soundness proof for Featherweight Java [1], a simple object calculus, in Isabelle/HOL [2].
متن کاملLightweight Polymorphic Effects - Proofs
This technical report presents the full proofs for the type preservation and effect soundness theorems of the type system presented in the article “Lightweight Polymorphic Effects”.
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2009